package com.crm.system.service.systemManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.systemManager.CallManager;
import com.crm.model.qo.systemManager.CallManagerQO;
import com.crm.model.vo.systemManager.CallManagerVO;

import java.util.List;

/**
 * @Author renshaorong
 * @Date 2021/04/20 11:34 上午
 */
public interface CallManagerService {

    /**
     * 根据当前登陆用户获取用户权限下的呼叫信息
     * @Author renshaorong
     * @Date 2021/4/20
     * @param pageIndex
     * @param pageSize
     * @param sortName
     * @param sortOrder
     * @param callManagerQO
     * @return
     */
    DhPageInfo<CallManagerVO> getCallListsByUser(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, CallManagerQO callManagerQO);

    /**
     * 保存绑定信息
     * @param callManagerQO
     * @return
     */
    boolean saveBindUser(CallManagerQO callManagerQO);

    /**
     * 解绑
     * @param callId
     * @return
     */
    boolean cleanUserAccountId(String callId);

    /**
     * 禁用
     * @param callId
     * @return
     */
    boolean disableByCallId(String callId);

    /**
     * 可用
     * @param callId
     * @return
     */
    boolean availableByCallId(String callId);

    /**
     * 获取呼叫信息（用于下拉框）
     * @param type
     * @return
     */
    List<CallManagerVO> getCallListsByUserList(Short type,String accountId);

    /**
     * 账号管理页面绑定号码
     * @param callManagerQO
     * @return
     */
    boolean bindCallId(CallManagerQO callManagerQO);

    /**
     * 批量禁用
     * @param callIds
     * @return
     */
    boolean batchDisable(List<String> callIds);

    /**
     * 获取给定用户绑定的信息列表
     * @param accountId
     * @return
     */
    List<CallManager> getCallListByAccountId(String accountId);

    /**
     * 拨打电话-线路切换获取随机号码
     * @Author pym
     * @Date  2021/5/26 8:37
     * @param type 号码类型 0、中继号 1、本地号 2、全国号
     * @return {@link {java.lang.String}}
     */
    String getRandomTelephoneNumber(String type);
}
